tg-me.com/BookPython/3629
Last Update:
Все объекты в Python создаются с помощью вызова метода __new__
. Даже если вы определяете собственный __new__
для своего класса, вам всё равно нужно вызвать super().__new__(...)
.
Можно подумать, что object.__new__
— это базовая реализация, которая отвечает за создание всех объектов. Но это не совсем так. На самом деле существует несколько таких реализаций, и они несовместимы между собой. Например, у dict
есть собственная низкоуровневая реализация __new__
, и объекты типов, унаследованных от dict
, нельзя создать с помощью object.__new__
:
class D(dict):
pass
class A:
pass
object.__new__(A)
# <__main__.A at 0x7f200c8902e8>
object.__new__(D)
# TypeError: object.__new__(D) is not safe,
# use D.__new__()
👉@BookPython
BY Библиотека Python разработчика | Книги по питону
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/BookPython/3629